<?php
class Model_ProjetoProcesso extends App_Db_Table
{
    protected $_name             = 'projeto_processo';
    protected $_primary          = array('fk_projeto', 'fk_processo');

    protected $_referenceMap     = array(
                    'Projeto' => array(
                            'columns'       => 'fk_projeto',
                            'refTableClass' => 'Model_Projeto',
                            'refColumns'    => 'id_projeto',
                         ),
                    'Processo' => array(
                            'columns'       => 'fk_processo',
                            'refTableClass' => 'Model_Processo',
                            'refColumns'    => 'id_processo',
                         ));

    /**
     * Gravação de dados na tabela
     * @param $aDados array
     * @return id
     */
    public function gravar(array $aDados)
    {
        if (empty($aDados['dt_fim'])) {
            $oRow = $this->createRow();
            $mode = Ev_Db_Table::K_INSERT;
        } else {
            $oRow = $this->find($aDados['fk_projeto'], $aDados['fk_processo'])->current();
            $mode = Ev_Db_Table::K_UPDATE;
        }

        //Limpa dados vazios
        $aDadosGravar = array();
        foreach ($aDados as $coluna => $valor) {
            if($valor === '') continue;
            $aDadosGravar[$coluna] = $valor;
        }
        $oRow->setFromArray($aDadosGravar);
        $oRow = $this->_preSave($oRow, $mode);
        return $oRow->save();
    }
}